In order to manage large quantities of data, computer software applications, such as spreadsheet and database applications, have been developed to organize and store the data in a logical manner. Typical spreadsheet and database applications comprise a large number of records of information, wherein each record comprises a predetermined number of fields. In the context of a database, a database management system is typically used to provide the software tools to manipulate the database more simply. Example database management systems include Microsoft® Access and Microsoft® SQL Server, among others. Databases generally allow users to establish complex data interrelationships that are not available in spreadsheets, which increases their power while also making database applications even more difficult for new users to master.
A typical database management system provides the user the ability to add, modify or delete data, query data using filters, and the ability to report records in the database. Data in databases is typically represented using rows and columns. A field is an intersection of a row and a column. In general, any given field may only contain a single, scalar data value. Data queries typically take the form of a query language, such as Structured Query Language (SQL). Such queries may be performed on locally held data, or submitted to a database server for execution.
In some cases, a database may contain a hierarchy of data rather than a flat table of values. For example, in an issue tracking application, each issue may be assigned to one or more people. A user must therefore model this type of hierarchy using multiple linked tables, and query such tables using relatively complex queries that join data from multiple tables. More specifically, there might be one table of issues, and another table of people containing all the possible people who could have an issue assigned to them, and finally, a junction table where issues are assigned to people. Setting up such a hierarchy of tables can be both cumbersome and confusing to a user, especially a user new to database applications. Querying across such a hierarchy can be similarly problematic due the complex nature of multi-table queries, especially if a user lacks in-depth knowledge of the query language.
It is with respect to these considerations and others that the present invention has been made.